package com.boco.modules.fdoc.service;

import java.util.List;

import com.boco.modules.fdoc.model.DoctorEntity;
import com.boco.modules.fdoc.model.HospitalEntity;
import com.boco.modules.fdoc.vo.InoculationVo;
import com.boco.modules.fdoc.vo.ResidentVo;
import com.boco.modules.fdoc.vo.VaccineSourceVo;

public interface InoculationService {
	/**
	 * 获取该家庭中还没有接种当前疫苗的人员
	 * @param uid
	 * @return
	 */
	public List<ResidentVo> getNotInoRelations(String uid,int detailId);
	/**
	 * 预约接种
	 * @param vo
	 * @return
	 */
	public String vaccinate(InoculationVo vo);
	/**
	 * 获取已接种、未接种人数
	 * @param docUid
	 * @return
	 */
	public InoculationVo getInoNum(String docUid);
	/**
	 * 获取已接种列表
	 * @param docUid
	 * @return
	 */
	public List<InoculationVo> getInoList(String docUid);
	/**
	 * 获取未接种列表
	 * @param docUid
	 * @return
	 */
	public List<InoculationVo> getNotInoList(String docUid);
	/**
	 * 医生端放号
	 * @param vo
	 * @return
	 */
	public int addVaccineSource(VaccineSourceVo vo);
	/**
	 * 获取可接种医院
	 * @param city
	 * @return
	 */
	public List<HospitalEntity> getInoHospList(String city,int detailId);
	/**
	 * 查询可接种的医生
	 * @param hospitalId
	 * @return
	 */
	public List<DoctorEntity> getInoDoctorList(int hospitalId,int detailId);
	/**
	 * 获取一周的医生放号信息
	 * @param vo
	 * @return
	 */
	public List<VaccineSourceVo> getInoNumListInWeek(VaccineSourceVo vo);
	/**
	 * 根据状态和当前登录UID获取放号记录
	 * @param uid
	 * @param status
	 * @return
	 */
	public List<VaccineSourceVo> getByStatus(String uid,String status);
	/**
	 * 清空已过期的放号信息
	 * @param docUid
	 * @return
	 */
	public int clear(String docUid);
	/**
	 * 查询接下来一周之内能预约的接种
	 * @param detailId
	 * @return
	 */
	public List<VaccineSourceVo> getSourceList(Integer detailId);
	/**
	 * 登录用户获取预约接种列表
	 * @return
	 */
	public List<InoculationVo> getUserBookingInoList(String uid);
	/**
	 * 修改接种预约状态
	 * @param id
	 * @param status
	 * @return
	 */
	public int updateBookingStatus(Integer id,String status);
}
